.financial-dashboard {
  background: #f8f9fa;
  min-height: 100vh;
  padding: 24px;

  .ant-card {
    border-radius: 16px;
    border: none;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    
    &:hover {
      box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
      transform: translateY(-2px);
    }
  }

  // 当前余额主卡片（替换原来的Total balance）
  .current-balance-main-card {
    background: 
      linear-gradient(135deg, 
        rgba(255, 215, 0, 0.8) 0%, 
        rgba(255, 140, 0, 0.9) 25%, 
        rgba(255, 69, 0, 0.8) 50%, 
        rgba(255, 20, 147, 0.9) 75%, 
        rgba(138, 43, 226, 0.8) 100%
      ),
      radial-gradient(circle at 30% 20%, 
        rgba(255, 255, 255, 0.4) 0%, 
        transparent 50%
      ),
      radial-gradient(circle at 70% 80%, 
        rgba(255, 255, 255, 0.3) 0%, 
        transparent 50%
      );
    background-blend-mode: overlay, soft-light, soft-light;
    margin-bottom: 32px;
    min-height: 140px;
    position: relative;
    overflow: hidden;
    
    &::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: 
        repeating-linear-gradient(
          45deg,
          transparent,
          transparent 2px,
          rgba(255, 255, 255, 0.1) 2px,
          rgba(255, 255, 255, 0.1) 4px
        );
      pointer-events: none;
    }
    
    &::after {
      content: '';
      position: absolute;
      top: -50%;
      left: -50%;
      right: -50%;
      bottom: -50%;
      background: 
        radial-gradient(
          circle at center,
          rgba(255, 255, 255, 0.1) 0%,
          transparent 70%
        );
      animation: shimmer 3s ease-in-out infinite;
      pointer-events: none;
    }
    
    .balance-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 16px 0;
      
      .balance-info {
        .balance-label {
          color: rgba(255, 255, 255, 0.8);
          font-size: 16px;
          font-weight: 500;
          margin-bottom: 12px;
          display: block;
        }
        
        .balance-amount {
          display: flex;
          align-items: baseline;
          
          .amount {
            color: #ffffff;
            font-size: 48px;
            font-weight: 700;
            margin-right: 8px;
          }
          
          .currency {
            color: #ffffff;
            font-size: 24px;
            font-weight: 600;
            text-decoration: underline;
            text-underline-offset: 4px;
          }
        }
      }
      
      .balance-actions {
        display: flex;
        gap: 16px;
        
        .action-btn {
          height: 52px;
          border-radius: 26px;
          font-weight: 600;
          font-size: 16px;
          border: 2px solid rgba(255, 255, 255, 0.3);
          background: rgba(255, 255, 255, 0.15);
          color: #ffffff;
          backdrop-filter: blur(15px);
          padding: 0 24px;
          position: relative;
          overflow: hidden;
          transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
          
          &::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(
              90deg,
              transparent,
              rgba(255, 255, 255, 0.2),
              transparent
            );
            transition: left 0.5s;
          }
          
          &:hover {
            background: rgba(255, 255, 255, 0.25);
            border-color: rgba(255, 255, 255, 0.5);
            transform: translateY(-2px);
            box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
            
            &::before {
              left: 100%;
            }
          }
          
          &.recharge-btn {
            background: linear-gradient(135deg, #52c41a 0%, #389e0d 100%);
            border-color: transparent;
            box-shadow: 0 4px 15px rgba(82, 196, 26, 0.4);
            
            &:hover {
              background: linear-gradient(135deg, #389e0d 0%, #237804 100%);
              box-shadow: 0 8px 25px rgba(82, 196, 26, 0.6);
              transform: translateY(-2px) scale(1.02);
            }
          }
          
          &.withdraw-btn {
            background: linear-gradient(135deg, #fa8c16 0%, #d46b08 100%);
            border-color: transparent;
            box-shadow: 0 4px 15px rgba(250, 140, 22, 0.4);
            
            &:hover {
              background: linear-gradient(135deg, #d46b08 0%, #ad4e00 100%);
              box-shadow: 0 8px 25px rgba(250, 140, 22, 0.6);
              transform: translateY(-2px) scale(1.02);
            }
          }
        }
      }
    }
  }

  // 收入和支出卡片
  .income-card,
  .expense-card {
    height: 140px;
    
    .card-content {
      display: flex;
      align-items: center;
      height: 100%;
      position: relative;
      
      .icon-section {
        margin-right: 20px;
        
        .icon-circle {
          width: 70px;
          height: 70px;
          border-radius: 50%;
          display: flex;
          align-items: center;
          justify-content: center;
          font-size: 28px;
          color: #ffffff;
          
          &.income-icon {
            background: linear-gradient(135deg, #52c41a 0%, #389e0d 100%);
          }
          
          &.expense-icon {
            background: linear-gradient(135deg, #fa8c16 0%, #d46b08 100%);
          }
        }
      }
      
      .text-section {
        flex: 1;
        
        .card-label {
          color: #8c8c8c;
          font-size: 16px;
          font-weight: 500;
          margin-bottom: 10px;
          display: block;
        }
        
        .card-amount {
          color: #262626;
          font-size: 28px;
          font-weight: 700;
        }
      }
      
      .change-tag {
        position: absolute;
        top: 0;
        right: 0;
        
        .change-tag-content {
          border-radius: 20px;
          font-weight: 600;
          font-size: 12px;
          padding: 4px 12px;
          border: none;
          
          &.ant-tag-success {
            background: #f6ffed;
            color: #52c41a;
          }
          
          &.ant-tag-error {
            background: #fff2f0;
            color: #ff4d4f;
          }
        }
      }
    }
  }

  // 图表卡片
  .chart-card {
    .chart-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 20px;
      
      .chart-title {
        margin: 0;
        color: #262626;
        font-weight: 600;
      }
      
      .chart-controls {
        display: flex;
        align-items: center;
        gap: 16px;
        
        .date-range-picker {
          display: flex;
          align-items: center;
          
          .ant-picker {
            border-radius: 8px;
            border: 1px solid #e8e8e8;
            
            &:hover {
              border-color: #1890ff;
            }
            
            &.ant-picker-focused {
              border-color: #1890ff;
              box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
            }
          }
        }
        
        .refresh-btn {
          border-radius: 8px;
          height: 36px;
          padding: 0 16px;
          font-weight: 500;
          border: 1px solid #e8e8e8;
          color: #666;
          
          &:hover {
            border-color: #1890ff;
            color: #1890ff;
          }
          
          &:active {
            transform: scale(0.98);
          }
        }
        
        .chart-type-selector {
          display: flex;
          gap: 8px;
          
          .chart-btn {
            border-radius: 20px;
            height: 36px;
            padding: 0 16px;
            font-weight: 500;
            
            &.ant-btn-primary {
              background: linear-gradient(135deg, #1890ff 0%, #096dd9 100%);
              border: none;
              box-shadow: 0 2px 8px rgba(24, 144, 255, 0.3);
              
              &:hover {
                background: linear-gradient(135deg, #096dd9 0%, #0050b3 100%);
                transform: translateY(-1px);
              }
            }
            
            &:not(.ant-btn-primary) {
              border: 1px solid #e8e8e8;
              color: #666;
              
              &:hover {
                border-color: #1890ff;
                color: #1890ff;
              }
            }
          }
        }
      }
    }
    
    .chart-container {
      height: 300px;
    }
  }

  // 收支清单卡片
  .transaction-list-card {
    margin-top: 24px;
    
    .list-title {
      margin: 0 0 20px 0;
      color: #262626;
      font-weight: 600;
    }
    
    .ant-table {
      .ant-table-thead > tr > th {
        background: #fafafa;
        font-weight: 600;
        color: #262626;
        border-bottom: 1px solid #f0f0f0;
      }
      
      .ant-table-tbody > tr > td {
        border-bottom: 1px solid #f5f5f5;
      }
      
      .ant-table-tbody > tr:hover > td {
        background: #f5f5f5;
      }
    }
  }

  // 右侧统计卡片
  .stats-card {
    .stats-header {
      margin-bottom: 20px;
      
      .stats-title {
        margin: 0;
        color: #262626;
        font-weight: 600;
      }
    }
    
    .stats-content {
      .stat-item {
        text-align: center;
        padding: 16px 0;
        
        .stat-label {
          color: #8c8c8c;
          font-size: 14px;
          font-weight: 500;
          margin-bottom: 8px;
          display: block;
        }
        
        .stat-value {
          font-size: 24px;
          font-weight: 700;
          margin-bottom: 8px;
          display: block;
          
          &.income {
            color: #52c41a;
          }
          
          &.expense {
            color: #fa8c16;
          }
          
          &.net-income {
            color: #1890ff;
          }
        }
        
        .stat-change {
          font-size: 12px;
          font-weight: 600;
          
          &.positive {
            color: #52c41a;
          }
          
          &.negative {
            color: #ff4d4f;
          }
        }
      }
      
      .ant-divider {
        margin: 0;
        border-color: #f0f0f0;
      }
    }
  }

  // 收支清单卡片
  .transaction-list-card {
    margin-top: 32px;
    
    .list-title {
      margin: 0 0 24px 0;
      color: #262626;
      font-weight: 600;
      font-size: 20px;
    }
    
    .ant-table {
      .ant-table-thead > tr > th {
        background: #fafafa;
        border-bottom: 2px solid #f0f0f0;
        font-weight: 600;
        color: #262626;
        padding: 16px 12px;
      }
      
      .ant-table-tbody > tr > td {
        padding: 16px 12px;
        border-bottom: 1px solid #f0f0f0;
      }
      
      .ant-table-tbody > tr:hover > td {
        background: #f8f9fa;
      }
    }
    
    .ant-pagination {
      margin-top: 24px;
      text-align: center;
      
      .ant-pagination-item {
        border-radius: 8px;
        border: 1px solid #d9d9d9;
        
        &:hover {
          border-color: #1890ff;
        }
        
        &.ant-pagination-item-active {
          background: #1890ff;
          border-color: #1890ff;
          
          a {
            color: #ffffff;
          }
        }
      }
    }
  }

  // 提现模态框
  .withdraw-modal {
    .ant-modal-content {
      border-radius: 16px;
      overflow: hidden;
    }
    
    .withdraw-overlay {
      .payment-methods {
        margin-bottom: 24px;
        
        .method-section {
          display: flex;
          justify-content: space-between;
          align-items: center;
          padding: 16px;
          border: 2px solid #f0f0f0;
          border-radius: 12px;
          margin-bottom: 16px;
          transition: all 0.3s ease;
          
          &:hover {
            border-color: #1890ff;
            background: #f6ffed;
          }
          
          .method-header {
            display: flex;
            align-items: center;
            gap: 12px;
            
            .method-icon {
              font-size: 24px;
              
              &.wechat {
                color: #52c41a;
              }
              
              &.alipay {
                color: #1890ff;
              }
            }
            
            .method-name {
              font-size: 16px;
              font-weight: 600;
              color: #262626;
            }
          }
          
          .method-radio {
            .ant-radio-inner {
              border-color: #d9d9d9;
              
              &:hover {
                border-color: #1890ff;
              }
            }
            
            .ant-radio-checked .ant-radio-inner {
              border-color: #1890ff;
              background: #1890ff;
            }
          }
        }
      }
      
      .fee-info {
        background: #f8f9fa;
        padding: 16px;
        border-radius: 8px;
        margin-bottom: 24px;
        
        .fee-label {
          color: #8c8c8c;
          font-size: 14px;
          margin-bottom: 12px;
          display: block;
        }
        
        .fee-calculation {
          display: flex;
          flex-direction: column;
          gap: 8px;
          
          .ant-typography {
            color: #666;
            font-size: 14px;
            
            &.actual-amount {
              color: #52c41a;
              font-weight: 600;
              font-size: 16px;
            }
          }
        }
      }
      
      .confirm-withdraw-btn {
        background: linear-gradient(135deg, #1890ff 0%, #096dd9 100%);
        border: none;
        height: 44px;
        border-radius: 22px;
        font-weight: 600;
        
        &:hover {
          background: linear-gradient(135deg, #096dd9 0%, #0050b3 100%);
          transform: translateY(-1px);
        }
      }
    }
  }

  // 充值模态框
  .recharge-modal {
    .ant-modal-content {
      border-radius: 16px;
      overflow: hidden;
    }
  }

  // 响应式设计
  @media (max-width: 1200px) {
    .current-balance-main-card {
      .balance-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
        
        .balance-actions {
          width: 100%;
          justify-content: space-between;
        }
      }
    }
  }

  @media (max-width: 768px) {
    padding: 16px;
    
    .ant-row {
      .ant-col {
        margin-bottom: 16px;
        
        &:last-child {
          margin-bottom: 0;
        }
      }
    }
    
    .current-balance-main-card {
      .balance-header {
        .balance-info {
          .balance-amount {
            .amount {
              font-size: 28px;
            }
            
            .currency {
              font-size: 20px;
            }
          }
        }
        
        .balance-actions {
          flex-direction: column;
          gap: 8px;
          
          .action-btn {
            width: 100%;
          }
        }
      }
    }
    
    .income-card,
    .expense-card {
      height: auto;
      min-height: 120px;
      
      .card-content {
        flex-direction: column;
        text-align: center;
        gap: 16px;
        
        .icon-section {
          margin-right: 0;
          
          .icon-circle {
            width: 60px;
            height: 60px;
            font-size: 24px;
          }
        }
        
        .change-tag {
          position: static;
          margin-top: 8px;
        }
      }
    }
    
    .transaction-list-card {
      .ant-table {
        .ant-table-thead > tr > th,
        .ant-table-tbody > tr > td {
          padding: 12px 8px;
        }
      }
      
      .ant-pagination {
        .ant-pagination-item {
          min-width: 32px;
          height: 32px;
          line-height: 30px;
        }
      }
    }
    
    .chart-card {
      .chart-header {
        flex-direction: column;
        gap: 16px;
        align-items: flex-start;
        
        .chart-type-selector {
          width: 100%;
          
          .chart-btn {
            flex: 1;
          }
        }
      }
    }
    
    .stats-card {
      .stats-content {
        .stat-item {
          .stat-value {
            font-size: 20px;
          }
        }
      }
    }
  }
  
  // 金属质感动画
  @keyframes shimmer {
    0% {
      transform: rotate(0deg) scale(1);
      opacity: 0.3;
    }
    50% {
      transform: rotate(180deg) scale(1.2);
      opacity: 0.6;
    }
    100% {
      transform: rotate(360deg) scale(1);
      opacity: 0.3;
    }
  }
}

// 充值弹窗样式
.recharge-modal {
  .ant-modal-content {
    border-radius: 16px;
    overflow: hidden;
  }
  
  .ant-modal-header {
    background: #ffffff;
    border-bottom: 1px solid #e8e8e8;
    
    .ant-modal-title {
      color: #333333;
      font-weight: 600;
      font-size: 18px;
    }
  }
  
  .ant-modal-close {
    color: #666666;
    
    &:hover {
      color: #333333;
      background: rgba(0, 0, 0, 0.05);
    }
  }
  
  .ant-modal-body {
    padding: 24px;
  }
}

// 充值第一步：选择充值金额
.recharge-step-amount {
  .balance-display {
    background: linear-gradient(135deg, #f0f8ff 0%, #e6f7ff 100%);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 24px;
    text-align: center;
    border: 1px solid #d6e4ff;
    
    .current-balance {
      .balance-label {
        color: #666;
        font-size: 14px;
        margin-bottom: 8px;
        display: block;
      }
      
      .balance-amount {
        color: #1890ff;
        font-size: 32px;
        font-weight: 700;
        font-family: 'SimHei', 'Microsoft YaHei', sans-serif;
      }
    }
  }
  
  .amount-selection {
    margin-bottom: 24px;
    
    .section-title {
      color: #333;
      font-size: 16px;
      font-weight: 600;
      margin-bottom: 16px;
      display: block;
    }
    
    .amount-tags {
      display: flex;
      gap: 12px;
      margin-bottom: 16px;
      
      .amount-tag {
        padding: 12px 20px;
        font-size: 16px;
        font-weight: 600;
        border-radius: 8px;
        cursor: pointer;
        transition: all 0.3s ease;
        border: 2px solid #e8e8e8;
        background: #ffffff;
        color: #666;
        
        &:hover {
          border-color: #1890ff;
          color: #1890ff;
          transform: translateY(-2px);
          box-shadow: 0 4px 12px rgba(24, 144, 255, 0.2);
        }
        
        &.selected {
          border-color: #1890ff;
          background: #1890ff;
          color: #ffffff;
          box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3);
        }
      }
    }
    
    .custom-amount {
      .ant-input-group-addon {
        background: #f5f5f5;
        border-color: #d9d9d9;
        color: #666;
        font-weight: 500;
      }
      
      // 去掉输入框的上下选择器
      .ant-input {
        &::-webkit-outer-spin-button,
        &::-webkit-inner-spin-button {
          -webkit-appearance: none;
          margin: 0;
        }
        
        &[type=number] {
          -moz-appearance: textfield;
        }
      }
    }
  }
  
  .recharge-notice {
    margin-bottom: 24px;
    
    .section-title {
      color: #333;
      font-size: 16px;
      font-weight: 600;
      margin-bottom: 16px;
      display: block;
    }
    
    .notice-list {
      background: #fff7e6;
      border: 1px solid #ffd591;
      border-radius: 8px;
      padding: 16px;
      
      .notice-item {
        display: flex;
        align-items: flex-start;
        margin-bottom: 12px;
        
        &:last-child {
          margin-bottom: 0;
        }
        
        .notice-number {
          color: #fa8c16;
          font-weight: 600;
          margin-right: 8px;
          min-width: 20px;
        }
        
        .notice-text {
          color: #8c8c8c;
          font-size: 14px;
          line-height: 1.5;
        }
      }
    }
  }
  
  .recharge-actions {
    text-align: center;
    
    .ant-btn-primary {
      background: linear-gradient(135deg, #1890ff 0%, #40a9ff 100%);
      border: none;
      box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3);
      
      &:hover {
        background: linear-gradient(135deg, #40a9ff 0%, #69c0ff 100%);
        transform: translateY(-2px);
        box-shadow: 0 6px 16px rgba(24, 144, 255, 0.4);
      }
    }
  }
}

// 充值第二步：选择支付方式
.recharge-step-payment {
  .payment-summary {
    background: linear-gradient(135deg, #f6ffed 0%, #d9f7be 100%);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 24px;
    text-align: center;
    border: 1px solid #b7eb8f;
    
    .payment-amount {
      .amount-label {
        color: #666;
        font-size: 14px;
        margin-bottom: 8px;
        display: block;
      }
      
      .amount-value {
        color: #52c41a;
        font-size: 32px;
        font-weight: 700;
        font-family: 'SimHei', 'Microsoft YaHei', sans-serif;
      }
    }
  }
  
  .payment-methods {
    margin-bottom: 24px;
    
    .section-title {
      color: #333;
      font-size: 16px;
      font-weight: 600;
      margin-bottom: 16px;
      display: block;
    }
    
    .method-options {
      .method-option {
        background: #ffffff;
        border: 2px solid #e8e8e8;
        border-radius: 12px;
        padding: 20px;
        margin-bottom: 16px;
        cursor: pointer;
        transition: all 0.3s ease;
        
        &:hover {
          border-color: #1890ff;
          box-shadow: 0 4px 12px rgba(24, 144, 255, 0.1);
        }
        
        &:last-child {
          margin-bottom: 0;
        }
        
        .ant-radio-wrapper {
          display: flex;
          align-items: center;
          width: 100%;
          
          .ant-radio {
            margin-right: 16px;
          }
          
          .method-icon {
            font-size: 24px;
            margin-right: 12px;
            
            &.alipay {
              color: #1890ff;
            }
            
            &.wechat {
              color: #52c41a;
            }
          }
          
          .method-name {
            font-size: 16px;
            font-weight: 500;
            color: #333;
          }
        }
      }
    }
  }
  
  .payment-actions {
    text-align: center;
    
    .ant-btn-primary {
      border: none;
      box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3);
      transition: all 0.3s ease;
      
      &:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 16px rgba(24, 144, 255, 0.4);
      }
    }
  }
}
